package com.ttx.pattern.example.command.after.invoker;

import com.ttx.pattern.example.command.after.command.Command;
import com.ttx.pattern.example.command.after.command.NoCommand;

/**
 * "画板" (invoker)
 * @author TimFruit
 * @date 19-5-5 下午11:22
 */
public class DrawingBoard {

    private Command[] commands; //画板上的按钮命令


    public DrawingBoard(int buttonSize) {
        commands=new Command[buttonSize];
        for(Command command: commands){
            command=new NoCommand();
        }
    }

    /**
     * 在对应的按钮位置设置对应的命令
     * @param position
     */
    public void setCommand(int position, Command command){
        if(command==null){
            return;
        }
        commands[position]=command;
    }


    /**
     * 点击对应位置的"按钮", 调用对应的命令
     * @param position
     */
    public void invokeCommand(int position){
        commands[position].execute();
    }


}
